# 单例 实现---装饰器
# py64证明后，我们就能理解单例了

def outfun(obj):
    clss = {}
    def innerfun():
        if obj not in clss.keys():
            clss[obj] = obj()
        return clss[obj]

    return innerfun

@outfun
class Person(object):
    def __new__(cls):
        # 如果存在这么一个空间就创建 不存在就创建
        return object.__new__(cls)
    def __init__(self):
        pass


p1 = Person()
p2 = Person()
print(p1)
print(p2)

